/**
 * Copyright (C), 2015-2019, XXX有限公司
 * FileName: JdkProxyTest
 * Author:   zhouheng
 * Date:     2019/5/25 14:12
 * Description:
 * History:
 * <author>          <time>          <version>          <desc>
 * 作者姓名           修改时间           版本号              描述
 */
package com.zhouh.patterns.com.zhouh.structure.proxy.jdk;

/**
 * 〈一句话功能简述〉<br> 
 * 〈〉
 *
 * @author zhouheng
 * @create 2019/5/25
 * @since 1.0.0
 */
public class JdkProxyTest {
    public static void main(String[] args) {
        try {
			Person obj = (Person)new MeiPo().getInstance(new XiaoLi());
			System.out.println(obj.getClass());
			obj.findLove();

            //原理：
            //1.拿到被代理对象的引用，然后获取它的接口
            //2.JDK代理重新生成一个类，同时实现我们给的代理对象所实现的接口
            //3.把被代理对象的引用也拿到了
            //4.重新动态生成一个class字节码
            //5.然后编译
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}